package com.jsoft.dao;

import com.jsoft.entity.Transfer;
import com.jsoft.entity.Voucher;

import java.util.List;

/**
 * @author:sha
 * @email:o68o4741@163.com
 * @date:2023/2/20
 */
public interface VoucherDao {
    /**
     * 根据id获取Voucher表中信息
     * @param id Voucher表得id
     * @return 一条Voucher记录，一个Voucher对象
     * @throws Exception sql语句问题
     */
    Voucher getVoucher(Integer id) throws Exception;

    /**
     * 根据id修改Voucher表中status状态
     * @param id Voucher表得id
     * @return 影响行数
     * @throws Exception sql语句异常
     */
    int updateStatus(Integer id) throws Exception;

    /**
     * 查询Voucher表的NO列
     * @return Voucher表的NO列
     * @throws Exception sql语句异常
     */
    List<Voucher> listVoucherNo()throws Exception;

    /**
     * 当转让金额小于凭证金额时，生成一条新的记录
     * @param voucher Voucher 对象
     * @param sourceId 凭证来源ID
     * @param balance 转让金额与凭证金额的差额
     * @return 影响行数
     * @throws Exception sql语句异常
     */
    int insertVoucher(Voucher voucher,Integer sourceId,Double balance)throws Exception;
}
